package com.pureut.order.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pureut.common.core.web.domain.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 *采购订单
 */
@Data
public class PurchaseOrderVo extends BaseEntity {

    /**
     * id
     */
    private long id;

    /**
     * 采购计划id
     */
    private long planId;

    /**
     * 采购计划明细id
     */
    private long detailId;

    /**
     * 采购订单号
     */
    private String purchaseOrderNo;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 采购合同号
     */
    @NotBlank(message = "采购合同号不能为空")
    private String purchaseContractNo;

    /**
     * 供应商id
     */
    @NotNull(message = "供应商id不能为空")
    private long supplierId;

    /**
     * 预计到货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estimatedTime;

    /**
     * 实际到货重量
     */
    private String actualArrivalWeight;

    /**
     * 退货重量
     */
    private String backWeight;

    /**
     * 计划单价
     */
    private String plannedUnitPrice;

    /**
     * 实际单价
     */
    private String actualUnitPrice;

    /**
     * 审核人
     */
    private String reviewBy;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 首批到货时间
     */
    @NotNull(message = "首批到货时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstBatchTime;

    /**
     * 末批到货时间
     */
    @NotNull(message = "末批到货时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endBatchTime;

    /**
     * 附件
     */
    @NotBlank(message = "附件不能为空")
    private String enclosureUrl;

    /**
     * 创建时间(前)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 创建时间（后）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 采购计划单号
     */
    private String purchaseNum;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;


    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商编号
     */
    private String supplierNum;

    /**
     * 实际重量
     */
    private String actualWeight;

    /**
     * 关节原因
     */
    private String closeReason;

    /**
     * 物料列表
     */
    private List<PurchaseVo> materialList;

}
